﻿using System;
using System.Collections.Generic;
using PomodoroSuite.EntidadesNegocio.Enumeradores;
using PomodoroSuite.FW.Comun;
using PomodoroSuite.FW.Comun.Atributos;
using PomodoroSuite.FW.Comun.Atributos.Relaciones;

namespace PomodoroSuite.EntidadesNegocio
{
    [MapearTabla("TareaSet")]
    public class TareaSet : BOGenerico
    {
        #region " Propiedades "

        /// <summary>
        /// Identificador
        /// </summary>
        [CampoTabla(true)]
        public int IdTareaSet { get; set; }

        /// <summary>
        /// Hora de inicio del set de tareas
        /// </summary>
        [CampoTabla]
        public DateTime HoraInicio { get; set; }

        /// <summary>
        /// Hora de finalización del set de tareas
        /// Generalmente sería cuando acabe un pomodoro (25 minutos)
        /// pero talvez se cancela el set y se coloca esa hora de finalización,
        /// o si dura varios pomodoros.
        /// </summary>
        [CampoTabla]
        public DateTime? HoraFinalizacion { get; set; }

        /// <summary>
        /// Número de pomodoros que toma el set de tareas
        /// </summary>
        [CampoTabla]
        public int NumeroPomodoros { get; set; }

        /// <summary>
        /// Estado del set de tareas
        /// </summary>
        [CampoTabla]
        public Estado EstadoTareaSet { get; set; }

        #endregion

        #region " Propiedades - Relaciones "

        /// <summary>
        /// Lista de tareas que contiene el set
        /// </summary>
        [UnoAMuchos("IdTareaSet")]
        public IList<Tarea> ColTarea { get; set; }

        /// <summary>
        /// Lista de pomodoros asociados al set de tareas
        /// </summary>
        [UnoAMuchos("IdTareaSet")]
        public IList<Pomodoro> ColPomodoro { get; set; }

        #endregion
    }
}
